﻿#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_LusterDBTool.h"
#include "ControlDB.h"

class LusterDBTool : public QMainWindow
{
    Q_OBJECT

public:
    LusterDBTool(QWidget *parent = nullptr);
    ~LusterDBTool();

private slots:
	// 点击选择数据库文件
	void SlotSelectDbFile();
	// 连接数据库
	void SlotConnectResDb();
	// 导入资源文件，图片或者svg
	void SlotImportResource();
	// 表格里修改了资源的名字
	void SlotResourceNameChanged(QTableWidgetItem* _curItem);
	// 更新选中的资源图
	void SlotUpdateSelectResource();
	// 删除选中
	void SlotDeleteSelectRes();
	// 导出选中
	void SlotExportSelectRes();
	// 查询资源
	void SlotSearchResource(const QString& _curSearchName);

private:
    Ui::LusterDBToolClass ui;
	void InitUI();
	void InitSlots();

	// 刷新，从数据库查询图片数据下载
	void RefreshPngTable();
	// 查询svg数据显示
	void RefreshSvgTable();
	// 创建一个表格item
	QTableWidgetItem* CreateTableItem(const QString& _text, const bool& _isReadOnly);
	// 设置操作数据库按钮状态 连接后可用
	void SetControlDbBtnEnable(bool _is_enable);
	// 导入图片 JPG和PNG 资源
	void ImportPng();
	// 导入svg资源
	void ImportSvg();
	// 获取选中的所有行号
	QVector<int> GetTableSelectRows();


	std::shared_ptr<ControlDB> control_db_Ptr_;
};
